package com.lt.lumentracks.entity.vo.common;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Collections;
import java.util.List;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class PageVO<T> {

    protected Long total; //总数据数量
    protected Long pages; //总页数
    protected List<T> list; //当前页数据


    //将mybatis-plus的Page类转成我们自己的PageVO类
    public static <T> PageVO<T> of(Page<T> mp_page) {
        if(mp_page == null) {
            return new PageVO<>();
        }

        //getTotal()是总记录数，getPages()是总页数，getRecords()是当前页的数据
        return new PageVO<>(mp_page.getTotal(), mp_page.getPages(), mp_page.getRecords());
    }

    public static <T> PageVO<T> empty(Page<?> mp_page) {
        return new PageVO<>(mp_page.getTotal(), mp_page.getPages(), Collections.emptyList());
    }

}
